/***********************************************************************
  * @代码说明：DS1302的库函数
  * @作者：admin
  * @日期：2020/07/27
  * @开发指导：wiki.stduino.com
  ***********************************************************************/

#ifndef __DS1302_H__ 
#define __DS1302_H__ 
#include "Stduino.h"




//DS1302 IO设置
#define DS1302_RST 2     //RST复位线引脚
#define DS1302_IO 3      //IO数据线引脚
#define DS1302_CLK 4     //SCLK时钟线引脚


#define DS1302_RST_0 digitalWrite(DS1302_RST,LOW)//复位置为低电平
#define DS1302_RST_1 digitalWrite(DS1302_RST,HIGH)//复位置为高电平

#define DS1302_IO_0 digitalWrite(DS1302_IO,LOW)//IO置为低电平
#define DS1302_IO_1 digitalWrite(DS1302_IO,HIGH)//IO置为高电平

#define DS1302_CLK_0 digitalWrite(DS1302_CLK,LOW)//时钟置为低电平
#define DS1302_CLK_1 digitalWrite(DS1302_CLK,HIGH)//时钟置为高电平


//宏定义
#define DS1302_SEC   0x80//秒寄存器地址
#define DS1302_MIN   0x82//分寄存器地址
#define DS1302_HR     0x84//时寄存器地址
#define DS1302_DAY      0x86//日寄存器地址
#define DS1302_MON    0x88//月寄存器地址
#define DS1302_WEEK     0x8a//星期寄存器地址
#define DS1302_YEAR     0x8c//年份寄存器地址


typedef struct __SYSTEMTIME__
{
    unsigned char Second;
    unsigned char Minute;
    unsigned char Hour;
    unsigned char Week;
    unsigned char Day;
    unsigned char Month;
    unsigned char  Year;
}TIME;    //定义时间类型




extern void DS1302_Write(unsigned char ucAddr, unsigned char ucDa);//写操作，包括地址与写的数据（字节）两个参数
extern unsigned char DS1302_Read(unsigned char ucAddr);//读操作

extern void DS1302_InputByte(unsigned char dat);//字节传入
extern unsigned char DS1302_OutputByte(void) ;//字节传出

extern void DS1302_SetProtect(unsigned char flag) ;//设置位保护

extern void DS1302_SetTime(unsigned char Address, unsigned char Value);//设置时间
extern void DS1302_GetTime(TIME *Time);//获取时间

extern void DS1302_Init(void);//初始化
extern void DS1302_HALT(bool FLAG_ON);//时钟振荡器是否停止

extern void Set_Time(String command);//时间设置函数
extern void Show_RTCC();//显示当前时间
extern void Set_HourSystem(String hourSystem);//修改小时制，输入12hours或24hours。

extern TIME DS1302Data;//用于储存时间数据的整体
extern bool Flag_Time_Refresh;











/*下面不用动，表演结束------------------------------------------------------------------*/
#endif /*__XXX_XXX_H */